<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>ROSS: models/phold/phold.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <a href="https://github.com/ROSS-org/ROSS">
   <div id="projectname">ROSS
   </div>
   </a>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_874b8b728d13de0551b51fc369705c70.html">models</a></li><li class="navelem"><a class="el" href="dir_68b2cdc84e26576ee299fc53418bc4c1.html">phold</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">phold.c</div>  </div>
</div><!--header-->
<div class="contents">
<a href="phold_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="phold_8h.html">phold.h</a>&quot;</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<a class="code" href="ross_8h.html#a1ec2e3807f66c4270f47acb0e555a519">tw_peid</a></div>
<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="phold_8c.html#ad035c6f4cbe65558dfc58e5f694383b0">    5</a></span>&#160;<a class="code" href="phold_8c.html#ad035c6f4cbe65558dfc58e5f694383b0">phold_map</a>(<a class="code" href="ross_8h.html#a911515dff2fb79886a16ed44df5f9d20">tw_lpid</a> gid)</div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="ross_8h.html#a1ec2e3807f66c4270f47acb0e555a519">tw_peid</a>) gid / <a class="code" href="ross-extern_8h.html#ab8bd876929690758e922961bcc16cd64">g_tw_nlp</a>;</div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;}</div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="phold_8c.html#a721365de85f51a68a49f3af69f411e10">   11</a></span>&#160;<a class="code" href="phold_8c.html#a721365de85f51a68a49f3af69f411e10">phold_init</a>(<a class="code" href="structphold__state.html">phold_state</a> * s, <a class="code" href="structtw__lp.html">tw_lp</a> * lp)</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    (void) s;</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;        <span class="keywordtype">int</span>              i;</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keywordflow">if</span>( <a class="code" href="phold_8h.html#a801a712a2bd444c2abba855288919415">stagger</a> )</div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;          {</div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;            <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="phold_8h.html#ab1a8e610883dd6f5751db111cdd05be2">g_phold_start_events</a>; i++)</div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;              {</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;                <a class="code" href="ross-extern_8h.html#ad057802273cd99b0e039da1ba15080ac">tw_event_send</a>(</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;                              <a class="code" href="ross-inline_8h.html#a6e55304c545600c2bb996fa70dd43f05">tw_event_new</a>(lp-&gt;<a class="code" href="structtw__lp.html#a3e75d9bf7796c16870ad686564ee4c20">gid</a>,</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;                                           <a class="code" href="ross-random_8c.html#ac042351acc76e850fd420dd41f0d58eb">tw_rand_exponential</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>, <a class="code" href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a>) + <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a> + (<a class="code" href="ross_8h.html#a80b370bc538e17441aef6afaff852678">tw_stime</a>)(lp-&gt;<a class="code" href="structtw__lp.html#a3e75d9bf7796c16870ad686564ee4c20">gid</a> % (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>)<a class="code" href="ross-extern_8h.html#aedd6d883bb5b01f0d5c1121f48b0477e">g_tw_ts_end</a>),</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;                                           lp));</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;              }</div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;          }</div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;          {</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;            <span class="keywordflow">for</span> (i = 0; i &lt; <a class="code" href="phold_8h.html#ab1a8e610883dd6f5751db111cdd05be2">g_phold_start_events</a>; i++)</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;              {</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;                <a class="code" href="ross-extern_8h.html#ad057802273cd99b0e039da1ba15080ac">tw_event_send</a>(</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;                              <a class="code" href="ross-inline_8h.html#a6e55304c545600c2bb996fa70dd43f05">tw_event_new</a>(lp-&gt;<a class="code" href="structtw__lp.html#a3e75d9bf7796c16870ad686564ee4c20">gid</a>,</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;                                           <a class="code" href="ross-random_8c.html#ac042351acc76e850fd420dd41f0d58eb">tw_rand_exponential</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>, <a class="code" href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a>) + <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a>,</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;                                           lp));</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;              }</div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;          }</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;}</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="phold_8c.html#a097328e25aacfc8361de4bcd3ef77a18">   39</a></span>&#160;<a class="code" href="phold_8c.html#a097328e25aacfc8361de4bcd3ef77a18">phold_pre_run</a>(<a class="code" href="structphold__state.html">phold_state</a> * s, <a class="code" href="structtw__lp.html">tw_lp</a> * lp)</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;{</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    (void) s;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="ross_8h.html#a911515dff2fb79886a16ed44df5f9d20">tw_lpid</a>      dest;</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="ross-random_8h.html#a39fc493bbf61e55264a6daa82e8109ab">tw_rand_unif</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>) &lt;= <a class="code" href="phold_8h.html#a636adef0ea6194a24b2e97cd664a9c90">percent_remote</a>)</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        {</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                dest = <a class="code" href="ross-random_8c.html#a56ae5b708a840eb42ad336f8852b6d5e">tw_rand_integer</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>, 0, <a class="code" href="phold_8h.html#ad10a568d289505ada0666f1863587f56">ttl_lps</a> - 1);</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        {</div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                dest = lp-&gt;<a class="code" href="structtw__lp.html#a3e75d9bf7796c16870ad686564ee4c20">gid</a>;</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        }</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keywordflow">if</span>(dest &gt;= (<a class="code" href="ross-extern_8h.html#ab8bd876929690758e922961bcc16cd64">g_tw_nlp</a> * <a class="code" href="network-mpi_8c.html#a2818efb70df48e5e29d3dacb3e2de009">tw_nnodes</a>()))</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                <a class="code" href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a>(<a class="code" href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a>, <span class="stringliteral">&quot;bad dest&quot;</span>);</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <a class="code" href="ross-extern_8h.html#ad057802273cd99b0e039da1ba15080ac">tw_event_send</a>(<a class="code" href="ross-inline_8h.html#a6e55304c545600c2bb996fa70dd43f05">tw_event_new</a>(dest, <a class="code" href="ross-random_8c.html#ac042351acc76e850fd420dd41f0d58eb">tw_rand_exponential</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>, <a class="code" href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a>) + <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a>, lp));</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;}</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="phold_8c.html#a85ba7c43c159225d369a4edc07c91fa3">   59</a></span>&#160;<a class="code" href="phold_8c.html#a85ba7c43c159225d369a4edc07c91fa3">phold_event_handler</a>(<a class="code" href="structphold__state.html">phold_state</a> * s, <a class="code" href="structtw__bf.html">tw_bf</a> * bf, <a class="code" href="structphold__message.html">phold_message</a> * m, <a class="code" href="structtw__lp.html">tw_lp</a> * lp)</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;{</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    (void) s;</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    (void) m;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <a class="code" href="ross_8h.html#a911515dff2fb79886a16ed44df5f9d20">tw_lpid</a>  dest;</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="ross-random_8h.html#a39fc493bbf61e55264a6daa82e8109ab">tw_rand_unif</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>) &lt;= <a class="code" href="phold_8h.html#a636adef0ea6194a24b2e97cd664a9c90">percent_remote</a>)</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        {</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;                bf-&gt;<a class="code" href="structtw__bf.html#ac71d7f821c4e24841ce7ae5b01f69797">c1</a> = 1;</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                dest = <a class="code" href="ross-random_8c.html#a56ae5b708a840eb42ad336f8852b6d5e">tw_rand_integer</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>, 0, <a class="code" href="phold_8h.html#ad10a568d289505ada0666f1863587f56">ttl_lps</a> - 1);</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                <span class="comment">// Makes PHOLD non-deterministic across processors! Don&#39;t uncomment</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                <span class="comment">/* dest += offset_lpid; */</span></div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                <span class="comment">/* if(dest &gt;= ttl_lps) */</span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                <span class="comment">/*      dest -= ttl_lps; */</span></div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        } <span class="keywordflow">else</span></div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        {</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                bf-&gt;<a class="code" href="structtw__bf.html#ac71d7f821c4e24841ce7ae5b01f69797">c1</a> = 0;</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                dest = lp-&gt;<a class="code" href="structtw__lp.html#a3e75d9bf7796c16870ad686564ee4c20">gid</a>;</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        }</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">if</span>(dest &gt;= (<a class="code" href="ross-extern_8h.html#ab8bd876929690758e922961bcc16cd64">g_tw_nlp</a> * <a class="code" href="network-mpi_8c.html#a2818efb70df48e5e29d3dacb3e2de009">tw_nnodes</a>()))</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                <a class="code" href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a>(<a class="code" href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a>, <span class="stringliteral">&quot;bad dest&quot;</span>);</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <a class="code" href="ross-extern_8h.html#ad057802273cd99b0e039da1ba15080ac">tw_event_send</a>(<a class="code" href="ross-inline_8h.html#a6e55304c545600c2bb996fa70dd43f05">tw_event_new</a>(dest, <a class="code" href="ross-random_8c.html#ac042351acc76e850fd420dd41f0d58eb">tw_rand_exponential</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>, <a class="code" href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a>) + <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a>, lp));</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="phold_8c.html#a932ed323685fdf0185f94824c7174576">   86</a></span>&#160;<a class="code" href="phold_8c.html#a932ed323685fdf0185f94824c7174576">phold_event_handler_rc</a>(<a class="code" href="structphold__state.html">phold_state</a> * s, <a class="code" href="structtw__bf.html">tw_bf</a> * bf, <a class="code" href="structphold__message.html">phold_message</a> * m, <a class="code" href="structtw__lp.html">tw_lp</a> * lp)</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;{</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    (void) s;</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    (void) m;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <a class="code" href="ross-random_8h.html#a9d938fae0821e40b672e49acecd80a3c">tw_rand_reverse_unif</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>);</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <a class="code" href="ross-random_8h.html#a9d938fae0821e40b672e49acecd80a3c">tw_rand_reverse_unif</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>);</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">if</span>(bf-&gt;<a class="code" href="structtw__bf.html#ac71d7f821c4e24841ce7ae5b01f69797">c1</a> == 1)</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                <a class="code" href="ross-random_8h.html#a9d938fae0821e40b672e49acecd80a3c">tw_rand_reverse_unif</a>(lp-&gt;<a class="code" href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">rng</a>);</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;}</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="phold_8c.html#a68d6dc7619500860c3dfbd29e5842c5b">   97</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="phold_8c.html#a68d6dc7619500860c3dfbd29e5842c5b">phold_commit</a>(<a class="code" href="structphold__state.html">phold_state</a> * s, <a class="code" href="structtw__bf.html">tw_bf</a> * bf, <a class="code" href="structphold__message.html">phold_message</a> * m, <a class="code" href="structtw__lp.html">tw_lp</a> * lp)</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;{</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    (void) s;</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    (void) bf;</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    (void) m;</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    (void) lp;</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keywordtype">void</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="phold_8c.html#a3595f2db36743f9c8b02452339d3cf57">  106</a></span>&#160;<a class="code" href="phold_8c.html#a3595f2db36743f9c8b02452339d3cf57">phold_finish</a>(<a class="code" href="structphold__state.html">phold_state</a> * s, <a class="code" href="structtw__lp.html">tw_lp</a> * lp)</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;{</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    (void) s;</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    (void) lp;</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;}</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="phold_8c.html#a022aa5520c1ece1e85616937f53f5395">  112</a></span>&#160;<a class="code" href="structtw__lptype.html">tw_lptype</a>       <a class="code" href="phold_8c.html#a022aa5520c1ece1e85616937f53f5395">mylps</a>[] = {</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        {(<a class="code" href="ross-types_8h.html#aac61902297f5fb4a64df1e5139b14635">init_f</a>) <a class="code" href="phold_8c.html#a721365de85f51a68a49f3af69f411e10">phold_init</a>,</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;     <span class="comment">/* (pre_run_f) phold_pre_run, */</span></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;     (<a class="code" href="ross-types_8h.html#a00a92238994982e5b35fdb11bb058b61">pre_run_f</a>) NULL,</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;         (<a class="code" href="ross-types_8h.html#a04b9baf15ecd297935e1cf749bcaa1ef">event_f</a>) <a class="code" href="phold_8c.html#a85ba7c43c159225d369a4edc07c91fa3">phold_event_handler</a>,</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;         (<a class="code" href="ross-types_8h.html#a622b543188d8cf3c6c7d03d4a8f688a8">revent_f</a>) <a class="code" href="phold_8c.html#a932ed323685fdf0185f94824c7174576">phold_event_handler_rc</a>,</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;         (<a class="code" href="ross-types_8h.html#abf9562d002530fb837843fd3f237dcd5">commit_f</a>) <a class="code" href="phold_8c.html#a68d6dc7619500860c3dfbd29e5842c5b">phold_commit</a>,</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;         (<a class="code" href="ross-types_8h.html#accdac06fd09ac539061af06d529fe467">final_f</a>) <a class="code" href="phold_8c.html#a3595f2db36743f9c8b02452339d3cf57">phold_finish</a>,</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;         (<a class="code" href="ross-types_8h.html#a62f872bac026a0bc42f4b64bb93c250e">map_f</a>) <a class="code" href="phold_8c.html#ad035c6f4cbe65558dfc58e5f694383b0">phold_map</a>,</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keyword">sizeof</span>(<a class="code" href="structphold__state.html">phold_state</a>)},</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        {0},</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;};</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="phold_8c.html#a8f7078bf279b431ad620a988850bb043">  125</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="phold_8c.html#a8f7078bf279b431ad620a988850bb043">event_trace</a>(<a class="code" href="structphold__message.html">phold_message</a> *m, <a class="code" href="structtw__lp.html">tw_lp</a> *lp, <span class="keywordtype">char</span> *buffer, <span class="keywordtype">int</span> *collect_flag)</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;{</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    (void) m;</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    (void) lp;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    (void) buffer;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    (void) collect_flag;</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;}</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="phold_8c.html#ac9b52669e1e0e324e8dfbf34c76b06c3">  134</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="phold_8c.html#ac9b52669e1e0e324e8dfbf34c76b06c3">phold_stats_collect</a>(<a class="code" href="structphold__state.html">phold_state</a> *s, <a class="code" href="structtw__lp.html">tw_lp</a> *lp, <span class="keywordtype">char</span> *buffer)</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;{</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    (void) s;</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    (void) lp;</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    (void) buffer;</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;}</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="phold_8c.html#ac09f86ccbbaef6a9a7241cd6606b8ac6">  142</a></span>&#160;<a class="code" href="structst__model__types.html">st_model_types</a> <a class="code" href="phold_8c.html#ac09f86ccbbaef6a9a7241cd6606b8ac6">model_types</a>[] = {</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    {(<a class="code" href="st-instrumentation_8h.html#addf5d12adb1b125629ef9c651c2607d5">ev_trace_f</a>) <a class="code" href="phold_8c.html#a8f7078bf279b431ad620a988850bb043">event_trace</a>,</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;     0,</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    (<a class="code" href="st-instrumentation_8h.html#a4192455b462301b35dd36d1815e4a294">model_stat_f</a>) <a class="code" href="phold_8c.html#ac9b52669e1e0e324e8dfbf34c76b06c3">phold_stats_collect</a>,</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="keyword">sizeof</span>(int),</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    NULL, <span class="comment">//(sample_event_f)</span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    NULL, <span class="comment">//(sample_revent_f)</span></div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    0},</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    {0}</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;};</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="phold_8c.html#ada0c7e7c55b61581d8fec48f6cf842b7">  153</a></span>&#160;<span class="keyword">const</span> <a class="code" href="structtw__optdef.html">tw_optdef</a> <a class="code" href="phold_8c.html#ada0c7e7c55b61581d8fec48f6cf842b7">app_opt</a>[] =</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;{</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="tw-opts_8h.html#a0e45b7a88a51dca3fe99d31aae9636c4">TWOPT_GROUP</a>(<span class="stringliteral">&quot;PHOLD Model&quot;</span>),</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        <a class="code" href="tw-opts_8h.html#aeb3c6cf7dfe9b1b9927905a7f5d86855">TWOPT_DOUBLE</a>(<span class="stringliteral">&quot;remote&quot;</span>, <a class="code" href="phold_8h.html#a636adef0ea6194a24b2e97cd664a9c90">percent_remote</a>, <span class="stringliteral">&quot;desired remote event rate&quot;</span>),</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        <a class="code" href="tw-opts_8h.html#a0d00417e3bef0d001f256f846c72838d">TWOPT_UINT</a>(<span class="stringliteral">&quot;nlp&quot;</span>, <a class="code" href="phold_8h.html#a85b1aa5d0aa5762fef568919a47747ba">nlp_per_pe</a>, <span class="stringliteral">&quot;number of LPs per processor&quot;</span>),</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <a class="code" href="tw-opts_8h.html#aeb3c6cf7dfe9b1b9927905a7f5d86855">TWOPT_DOUBLE</a>(<span class="stringliteral">&quot;mean&quot;</span>, <a class="code" href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a>, <span class="stringliteral">&quot;exponential distribution mean for timestamps&quot;</span>),</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <a class="code" href="tw-opts_8h.html#aeb3c6cf7dfe9b1b9927905a7f5d86855">TWOPT_DOUBLE</a>(<span class="stringliteral">&quot;mult&quot;</span>, <a class="code" href="phold_8h.html#a730376f73359fe937a2a99ba03f53709">mult</a>, <span class="stringliteral">&quot;multiplier for event memory allocation&quot;</span>),</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <a class="code" href="tw-opts_8h.html#aeb3c6cf7dfe9b1b9927905a7f5d86855">TWOPT_DOUBLE</a>(<span class="stringliteral">&quot;lookahead&quot;</span>, <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a>, <span class="stringliteral">&quot;lookahead for events&quot;</span>),</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <a class="code" href="tw-opts_8h.html#a0d00417e3bef0d001f256f846c72838d">TWOPT_UINT</a>(<span class="stringliteral">&quot;start-events&quot;</span>, <a class="code" href="phold_8h.html#ab1a8e610883dd6f5751db111cdd05be2">g_phold_start_events</a>, <span class="stringliteral">&quot;number of initial messages per LP&quot;</span>),</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <a class="code" href="tw-opts_8h.html#a0d00417e3bef0d001f256f846c72838d">TWOPT_UINT</a>(<span class="stringliteral">&quot;stagger&quot;</span>, <a class="code" href="phold_8h.html#a801a712a2bd444c2abba855288919415">stagger</a>, <span class="stringliteral">&quot;Set to 1 to stagger event uniformly across 0 to end time.&quot;</span>),</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <a class="code" href="tw-opts_8h.html#a0d00417e3bef0d001f256f846c72838d">TWOPT_UINT</a>(<span class="stringliteral">&quot;memory&quot;</span>, <a class="code" href="phold_8h.html#a6ecc774eca445e078adacc9300c0e9ca">optimistic_memory</a>, <span class="stringliteral">&quot;additional memory buffers&quot;</span>),</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <a class="code" href="tw-opts_8h.html#a3f719d60e0328d6ef7f96e07c02f2769">TWOPT_CHAR</a>(<span class="stringliteral">&quot;run&quot;</span>, <a class="code" href="phold_8h.html#a816584afd634f19479513f095756559b">run_id</a>, <span class="stringliteral">&quot;user supplied run name&quot;</span>),</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <a class="code" href="tw-opts_8h.html#a38209b0e7568d41f5448ae5f884290a4">TWOPT_END</a>()</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;};</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="keywordtype">int</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="phold_8c.html#a3c04138a5bfe5d72780bb7e82a18e627">  169</a></span>&#160;<a class="code" href="phold_8c.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv)</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;{</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#ifdef TEST_COMM_ROSS</span></div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor"></span>    <span class="comment">// Init outside of ROSS</span></div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    MPI_Init(&amp;argc, &amp;argv);</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="comment">// Split COMM_WORLD in half even/odd</span></div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordtype">int</span> mpi_rank;</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    MPI_Comm_rank(MPI_COMM_WORLD, &amp;mpi_rank);</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    MPI_Comm split_comm;</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    MPI_Comm_split(MPI_COMM_WORLD, mpi_rank%2, mpi_rank, &amp;split_comm);</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keywordflow">if</span>(mpi_rank%2 == 1){</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        <span class="comment">// tests should catch any MPI_COMM_WORLD collectives</span></div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;        MPI_Finalize();</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    }</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    <span class="comment">// Allows ROSS to function as normal</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    <a class="code" href="network-mpi_8c.html#aea8ec44102f611b89ed0ad9f4015cd97">tw_comm_set</a>(split_comm);</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        <span class="comment">// set a min lookahead of 1.0</span></div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;        <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a> = 1.0;</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;        <a class="code" href="tw-opts_8c.html#adb4b8bc6800f3d900747d4adeda4ac92">tw_opt_add</a>(app_opt);</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        <a class="code" href="ross-extern_8h.html#a7d395f5590701f5526a161fcb1261b03">tw_init</a>(&amp;argc, &amp;argv);</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="preprocessor">#ifdef USE_DAMARIS</span></div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor"></span>    <span class="keywordflow">if</span>(g_st_ross_rank)</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    { <span class="comment">// only ross ranks should run code between here and tw_run()</span></div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor"></span>        <span class="keywordflow">if</span>( <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a> &gt; 1.0 )</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;          <a class="code" href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a>(<a class="code" href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a>, <span class="stringliteral">&quot;Lookahead &gt; 1.0 .. needs to be less\n&quot;</span>);</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="comment">//reset mean based on lookahead</span></div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <a class="code" href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a> = <a class="code" href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a> - <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a>;</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        <a class="code" href="phold_8h.html#ab0a805f1db10ddfb818c7b9acfb74a2f">offset_lpid</a> = <a class="code" href="ross-extern_8h.html#a83ae3f8b8b94935a1dbdfa2d2552f508">g_tw_mynode</a> * <a class="code" href="phold_8h.html#a85b1aa5d0aa5762fef568919a47747ba">nlp_per_pe</a>;</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        <a class="code" href="phold_8h.html#ad10a568d289505ada0666f1863587f56">ttl_lps</a> = <a class="code" href="network-mpi_8c.html#a2818efb70df48e5e29d3dacb3e2de009">tw_nnodes</a>() * <a class="code" href="phold_8h.html#a85b1aa5d0aa5762fef568919a47747ba">nlp_per_pe</a>;</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        <a class="code" href="ross-extern_8h.html#a57043bf25127f521210bbf779e283e13">g_tw_events_per_pe</a> = (<a class="code" href="phold_8h.html#a730376f73359fe937a2a99ba03f53709">mult</a> * nlp_per_pe * <a class="code" href="phold_8h.html#ab1a8e610883dd6f5751db111cdd05be2">g_phold_start_events</a>) +</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                                <a class="code" href="phold_8h.html#a6ecc774eca445e078adacc9300c0e9ca">optimistic_memory</a>;</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="comment">//g_tw_rng_default = TW_FALSE;</span></div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <a class="code" href="ross-extern_8h.html#ae6211f101eb9694fec8f350c874ba6cd">g_tw_lookahead</a> = <a class="code" href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a>;</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <a class="code" href="ross-extern_8h.html#ae29dd6eba29314361ef334f6bf028210">tw_define_lps</a>(nlp_per_pe, <span class="keyword">sizeof</span>(<a class="code" href="structphold__message.html">phold_message</a>));</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        <span class="keywordflow">for</span>(i = 0; i &lt; <a class="code" href="ross-extern_8h.html#ab8bd876929690758e922961bcc16cd64">g_tw_nlp</a>; i++)</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    {</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                <a class="code" href="ross-extern_8h.html#a5b2b3253aadb60150d25a882ba8b22e9">tw_lp_settype</a>(i, &amp;mylps[0]);</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        <a class="code" href="st-instrumentation_8h.html#a10e1bfd2a0fdbdd943149bb4f1cd50d9">st_model_settype</a>(i, &amp;model_types[0]);</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    }</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        <span class="keywordflow">if</span>( <a class="code" href="ross-extern_8h.html#a83ae3f8b8b94935a1dbdfa2d2552f508">g_tw_mynode</a> == 0 )</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;          {</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            printf(<span class="stringliteral">&quot;========================================\n&quot;</span>);</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;            printf(<span class="stringliteral">&quot;PHOLD Model Configuration..............\n&quot;</span>);</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;            printf(<span class="stringliteral">&quot;   Lookahead..............%lf\n&quot;</span>, lookahead);</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;            printf(<span class="stringliteral">&quot;   Start-events...........%u\n&quot;</span>, <a class="code" href="phold_8h.html#ab1a8e610883dd6f5751db111cdd05be2">g_phold_start_events</a>);</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;            printf(<span class="stringliteral">&quot;   stagger................%u\n&quot;</span>, <a class="code" href="phold_8h.html#a801a712a2bd444c2abba855288919415">stagger</a>);</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;            printf(<span class="stringliteral">&quot;   Mean...................%lf\n&quot;</span>, <a class="code" href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a>);</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;            printf(<span class="stringliteral">&quot;   Mult...................%lf\n&quot;</span>, <a class="code" href="phold_8h.html#a730376f73359fe937a2a99ba03f53709">mult</a>);</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;            printf(<span class="stringliteral">&quot;   Memory.................%u\n&quot;</span>, <a class="code" href="phold_8h.html#a6ecc774eca445e078adacc9300c0e9ca">optimistic_memory</a>);</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;            printf(<span class="stringliteral">&quot;   Remote.................%lf\n&quot;</span>, <a class="code" href="phold_8h.html#a636adef0ea6194a24b2e97cd664a9c90">percent_remote</a>);</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;            printf(<span class="stringliteral">&quot;========================================\n\n&quot;</span>);</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;          }</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        <a class="code" href="ross-extern_8h.html#a6dbc4bba03285bb1b8a8a5464f0375ea">tw_run</a>();</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">#ifdef USE_DAMARIS</span></div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor"></span>    } <span class="comment">// end if(g_st_ross_rank)</span></div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="preprocessor"></span>        <a class="code" href="ross-extern_8h.html#acd06dc2372c54c089852984132991b4e">tw_end</a>();</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;}</div>
<div class="ttc" id="phold_8h_html_a85b1aa5d0aa5762fef568919a47747ba"><div class="ttname"><a href="phold_8h.html#a85b1aa5d0aa5762fef568919a47747ba">nlp_per_pe</a></div><div class="ttdeci">static unsigned int nlp_per_pe</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00032">phold.h:32</a></div></div>
<div class="ttc" id="phold_8c_html_a932ed323685fdf0185f94824c7174576"><div class="ttname"><a href="phold_8c.html#a932ed323685fdf0185f94824c7174576">phold_event_handler_rc</a></div><div class="ttdeci">void phold_event_handler_rc(phold_state *s, tw_bf *bf, phold_message *m, tw_lp *lp)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00086">phold.c:86</a></div></div>
<div class="ttc" id="ross-extern_8h_html_afffdf140f2c492f61546ad783833f127"><div class="ttname"><a href="ross-extern_8h.html#afffdf140f2c492f61546ad783833f127">TW_LOC</a></div><div class="ttdeci">#define TW_LOC</div><div class="ttdef"><b>Definition:</b> <a href="ross-extern_8h_source.html#l00164">ross-extern.h:164</a></div></div>
<div class="ttc" id="ross_8h_html_a80b370bc538e17441aef6afaff852678"><div class="ttname"><a href="ross_8h.html#a80b370bc538e17441aef6afaff852678">tw_stime</a></div><div class="ttdeci">double tw_stime</div><div class="ttdef"><b>Definition:</b> <a href="ross_8h_source.html#l00150">ross.h:150</a></div></div>
<div class="ttc" id="phold_8h_html_ab1a8e610883dd6f5751db111cdd05be2"><div class="ttname"><a href="phold_8h.html#ab1a8e610883dd6f5751db111cdd05be2">g_phold_start_events</a></div><div class="ttdeci">static int g_phold_start_events</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00033">phold.h:33</a></div></div>
<div class="ttc" id="ross-extern_8h_html_aedd6d883bb5b01f0d5c1121f48b0477e"><div class="ttname"><a href="ross-extern_8h.html#aedd6d883bb5b01f0d5c1121f48b0477e">g_tw_ts_end</a></div><div class="ttdeci">double g_tw_ts_end</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00068">ross-global.c:68</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a49ed2388aaae26e43280b7909c834aaa"><div class="ttname"><a href="ross-extern_8h.html#a49ed2388aaae26e43280b7909c834aaa">tw_error</a></div><div class="ttdeci">void tw_error(const char *file, int line, const char *fmt,...) NORETURN</div><div class="ttdef"><b>Definition:</b> <a href="tw-util_8c_source.html#l00074">tw-util.c:74</a></div></div>
<div class="ttc" id="tw-opts_8h_html_a3f719d60e0328d6ef7f96e07c02f2769"><div class="ttname"><a href="tw-opts_8h.html#a3f719d60e0328d6ef7f96e07c02f2769">TWOPT_CHAR</a></div><div class="ttdeci">#define TWOPT_CHAR(n, v, h)</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00033">tw-opts.h:33</a></div></div>
<div class="ttc" id="phold_8h_html_ad4bbf91c2b6e66b1ad2a070b77b62442"><div class="ttname"><a href="phold_8h.html#ad4bbf91c2b6e66b1ad2a070b77b62442">mean</a></div><div class="ttdeci">static tw_stime mean</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00037">phold.h:37</a></div></div>
<div class="ttc" id="phold_8h_html_ad10a568d289505ada0666f1863587f56"><div class="ttname"><a href="phold_8h.html#ad10a568d289505ada0666f1863587f56">ttl_lps</a></div><div class="ttdeci">static unsigned int ttl_lps</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00031">phold.h:31</a></div></div>
<div class="ttc" id="phold_8c_html_a68d6dc7619500860c3dfbd29e5842c5b"><div class="ttname"><a href="phold_8c.html#a68d6dc7619500860c3dfbd29e5842c5b">phold_commit</a></div><div class="ttdeci">void phold_commit(phold_state *s, tw_bf *bf, phold_message *m, tw_lp *lp)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00097">phold.c:97</a></div></div>
<div class="ttc" id="phold_8c_html_ad035c6f4cbe65558dfc58e5f694383b0"><div class="ttname"><a href="phold_8c.html#ad035c6f4cbe65558dfc58e5f694383b0">phold_map</a></div><div class="ttdeci">tw_peid phold_map(tw_lpid gid)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00005">phold.c:5</a></div></div>
<div class="ttc" id="phold_8c_html_ac9b52669e1e0e324e8dfbf34c76b06c3"><div class="ttname"><a href="phold_8c.html#ac9b52669e1e0e324e8dfbf34c76b06c3">phold_stats_collect</a></div><div class="ttdeci">void phold_stats_collect(phold_state *s, tw_lp *lp, char *buffer)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00134">phold.c:134</a></div></div>
<div class="ttc" id="network-mpi_8c_html_aea8ec44102f611b89ed0ad9f4015cd97"><div class="ttname"><a href="network-mpi_8c.html#aea8ec44102f611b89ed0ad9f4015cd97">tw_comm_set</a></div><div class="ttdeci">void tw_comm_set(MPI_Comm comm)</div><div class="ttdoc">Setup the MPI_COMM_ROSS communicator to use instead of MPI_COMM_WORLD. </div><div class="ttdef"><b>Definition:</b> <a href="network-mpi_8c_source.html#l00059">network-mpi.c:59</a></div></div>
<div class="ttc" id="tw-opts_8h_html_aeb3c6cf7dfe9b1b9927905a7f5d86855"><div class="ttname"><a href="tw-opts_8h.html#aeb3c6cf7dfe9b1b9927905a7f5d86855">TWOPT_DOUBLE</a></div><div class="ttdeci">#define TWOPT_DOUBLE(n, v, h)</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00032">tw-opts.h:32</a></div></div>
<div class="ttc" id="phold_8c_html_a097328e25aacfc8361de4bcd3ef77a18"><div class="ttname"><a href="phold_8c.html#a097328e25aacfc8361de4bcd3ef77a18">phold_pre_run</a></div><div class="ttdeci">void phold_pre_run(phold_state *s, tw_lp *lp)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00039">phold.c:39</a></div></div>
<div class="ttc" id="phold_8h_html_a730376f73359fe937a2a99ba03f53709"><div class="ttname"><a href="phold_8h.html#a730376f73359fe937a2a99ba03f53709">mult</a></div><div class="ttdeci">static tw_stime mult</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00029">phold.h:29</a></div></div>
<div class="ttc" id="structtw__optdef_html"><div class="ttname"><a href="structtw__optdef.html">tw_optdef</a></div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00019">tw-opts.h:19</a></div></div>
<div class="ttc" id="phold_8c_html_a85ba7c43c159225d369a4edc07c91fa3"><div class="ttname"><a href="phold_8c.html#a85ba7c43c159225d369a4edc07c91fa3">phold_event_handler</a></div><div class="ttdeci">void phold_event_handler(phold_state *s, tw_bf *bf, phold_message *m, tw_lp *lp)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00059">phold.c:59</a></div></div>
<div class="ttc" id="ross-types_8h_html_a04b9baf15ecd297935e1cf749bcaa1ef"><div class="ttname"><a href="ross-types_8h.html#a04b9baf15ecd297935e1cf749bcaa1ef">event_f</a></div><div class="ttdeci">void(* event_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00077">ross-types.h:77</a></div></div>
<div class="ttc" id="ross-extern_8h_html_ab8bd876929690758e922961bcc16cd64"><div class="ttname"><a href="ross-extern_8h.html#ab8bd876929690758e922961bcc16cd64">g_tw_nlp</a></div><div class="ttdeci">tw_lpid g_tw_nlp</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00023">ross-global.c:23</a></div></div>
<div class="ttc" id="network-mpi_8c_html_a2818efb70df48e5e29d3dacb3e2de009"><div class="ttname"><a href="network-mpi_8c.html#a2818efb70df48e5e29d3dacb3e2de009">tw_nnodes</a></div><div class="ttdeci">unsigned int tw_nnodes(void)</div><div class="ttdef"><b>Definition:</b> <a href="network-mpi_8c_source.html#l00103">network-mpi.c:103</a></div></div>
<div class="ttc" id="structtw__bf_html_ac71d7f821c4e24841ce7ae5b01f69797"><div class="ttname"><a href="structtw__bf.html#ac71d7f821c4e24841ce7ae5b01f69797">tw_bf::c1</a></div><div class="ttdeci">unsigned int c1</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00180">ross-types.h:180</a></div></div>
<div class="ttc" id="phold_8c_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="phold_8c.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00169">phold.c:169</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_addf5d12adb1b125629ef9c651c2607d5"><div class="ttname"><a href="st-instrumentation_8h.html#addf5d12adb1b125629ef9c651c2607d5">ev_trace_f</a></div><div class="ttdeci">void(* ev_trace_f)(void *msg, tw_lp *lp, char *buffer, int *collect_flag)</div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8h_source.html#l00188">st-instrumentation.h:188</a></div></div>
<div class="ttc" id="phold_8h_html_ac877337ae1e75d1b6640f41799f5a72c"><div class="ttname"><a href="phold_8h.html#ac877337ae1e75d1b6640f41799f5a72c">lookahead</a></div><div class="ttdeci">tw_stime lookahead</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00026">phold.h:26</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a5b2b3253aadb60150d25a882ba8b22e9"><div class="ttname"><a href="ross-extern_8h.html#a5b2b3253aadb60150d25a882ba8b22e9">tw_lp_settype</a></div><div class="ttdeci">void tw_lp_settype(tw_lpid lp, tw_lptype *type)</div><div class="ttdef"><b>Definition:</b> <a href="tw-lp_8c_source.html#l00038">tw-lp.c:38</a></div></div>
<div class="ttc" id="ross_8h_html_a911515dff2fb79886a16ed44df5f9d20"><div class="ttname"><a href="ross_8h.html#a911515dff2fb79886a16ed44df5f9d20">tw_lpid</a></div><div class="ttdeci">uint64_t tw_lpid</div><div class="ttdef"><b>Definition:</b> <a href="ross_8h_source.html#l00160">ross.h:160</a></div></div>
<div class="ttc" id="structtw__lptype_html"><div class="ttname"><a href="structtw__lptype.html">tw_lptype</a></div><div class="ttdoc">Function Pointers for ROSS Event Handlers. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00087">ross-types.h:87</a></div></div>
<div class="ttc" id="phold_8h_html_ab0a805f1db10ddfb818c7b9acfb74a2f"><div class="ttname"><a href="phold_8h.html#ab0a805f1db10ddfb818c7b9acfb74a2f">offset_lpid</a></div><div class="ttdeci">static unsigned int offset_lpid</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00028">phold.h:28</a></div></div>
<div class="ttc" id="structst__model__types_html"><div class="ttname"><a href="structst__model__types.html">st_model_types</a></div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8h_source.html#l00220">st-instrumentation.h:220</a></div></div>
<div class="ttc" id="ross-types_8h_html_a62f872bac026a0bc42f4b64bb93c250e"><div class="ttname"><a href="ross-types_8h.html#a62f872bac026a0bc42f4b64bb93c250e">map_f</a></div><div class="ttdeci">tw_peid(* map_f)(tw_lpid)</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00073">ross-types.h:73</a></div></div>
<div class="ttc" id="structtw__lp_html_a3e75d9bf7796c16870ad686564ee4c20"><div class="ttname"><a href="structtw__lp.html#a3e75d9bf7796c16870ad686564ee4c20">tw_lp::gid</a></div><div class="ttdeci">tw_lpid gid</div><div class="ttdoc">global LP id </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00306">ross-types.h:306</a></div></div>
<div class="ttc" id="phold_8h_html_a801a712a2bd444c2abba855288919415"><div class="ttname"><a href="phold_8h.html#a801a712a2bd444c2abba855288919415">stagger</a></div><div class="ttdeci">static unsigned int stagger</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00027">phold.h:27</a></div></div>
<div class="ttc" id="phold_8c_html_ada0c7e7c55b61581d8fec48f6cf842b7"><div class="ttname"><a href="phold_8c.html#ada0c7e7c55b61581d8fec48f6cf842b7">app_opt</a></div><div class="ttdeci">const tw_optdef app_opt[]</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00153">phold.c:153</a></div></div>
<div class="ttc" id="ross-random_8c_html_a56ae5b708a840eb42ad336f8852b6d5e"><div class="ttname"><a href="ross-random_8c.html#a56ae5b708a840eb42ad336f8852b6d5e">tw_rand_integer</a></div><div class="ttdeci">long tw_rand_integer(tw_rng_stream *g, long low, long high)</div><div class="ttdef"><b>Definition:</b> <a href="ross-random_8c_source.html#l00021">ross-random.c:21</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a6dbc4bba03285bb1b8a8a5464f0375ea"><div class="ttname"><a href="ross-extern_8h.html#a6dbc4bba03285bb1b8a8a5464f0375ea">tw_run</a></div><div class="ttdeci">void tw_run(void)</div><div class="ttdef"><b>Definition:</b> <a href="tw-setup_8c_source.html#l00339">tw-setup.c:339</a></div></div>
<div class="ttc" id="phold_8c_html_a721365de85f51a68a49f3af69f411e10"><div class="ttname"><a href="phold_8c.html#a721365de85f51a68a49f3af69f411e10">phold_init</a></div><div class="ttdeci">void phold_init(phold_state *s, tw_lp *lp)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00011">phold.c:11</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a83ae3f8b8b94935a1dbdfa2d2552f508"><div class="ttname"><a href="ross-extern_8h.html#a83ae3f8b8b94935a1dbdfa2d2552f508">g_tw_mynode</a></div><div class="ttdeci">tw_peid g_tw_mynode</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00088">ross-global.c:88</a></div></div>
<div class="ttc" id="structtw__bf_html"><div class="ttname"><a href="structtw__bf.html">tw_bf</a></div><div class="ttdoc">Reverse Computation Bitfield. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00178">ross-types.h:178</a></div></div>
<div class="ttc" id="tw-opts_8h_html_a0d00417e3bef0d001f256f846c72838d"><div class="ttname"><a href="tw-opts_8h.html#a0d00417e3bef0d001f256f846c72838d">TWOPT_UINT</a></div><div class="ttdeci">#define TWOPT_UINT(n, v, h)</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00030">tw-opts.h:30</a></div></div>
<div class="ttc" id="ross-types_8h_html_aac61902297f5fb4a64df1e5139b14635"><div class="ttname"><a href="ross-types_8h.html#aac61902297f5fb4a64df1e5139b14635">init_f</a></div><div class="ttdeci">void(* init_f)(void *sv, tw_lp *me)</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00072">ross-types.h:72</a></div></div>
<div class="ttc" id="tw-opts_8h_html_a38209b0e7568d41f5448ae5f884290a4"><div class="ttname"><a href="tw-opts_8h.html#a38209b0e7568d41f5448ae5f884290a4">TWOPT_END</a></div><div class="ttdeci">#define TWOPT_END()</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00035">tw-opts.h:35</a></div></div>
<div class="ttc" id="phold_8h_html_a6ecc774eca445e078adacc9300c0e9ca"><div class="ttname"><a href="phold_8h.html#a6ecc774eca445e078adacc9300c0e9ca">optimistic_memory</a></div><div class="ttdeci">static int optimistic_memory</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00034">phold.h:34</a></div></div>
<div class="ttc" id="tw-opts_8c_html_adb4b8bc6800f3d900747d4adeda4ac92"><div class="ttname"><a href="tw-opts_8c.html#adb4b8bc6800f3d900747d4adeda4ac92">tw_opt_add</a></div><div class="ttdeci">void tw_opt_add(const tw_optdef *options)</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8c_source.html#l00014">tw-opts.c:14</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a10e1bfd2a0fdbdd943149bb4f1cd50d9"><div class="ttname"><a href="st-instrumentation_8h.html#a10e1bfd2a0fdbdd943149bb4f1cd50d9">st_model_settype</a></div><div class="ttdeci">void st_model_settype(tw_lpid i, st_model_types *model_types)</div><div class="ttdef"><b>Definition:</b> <a href="st-model-data_8c_source.html#l00025">st-model-data.c:25</a></div></div>
<div class="ttc" id="ross-types_8h_html_a622b543188d8cf3c6c7d03d4a8f688a8"><div class="ttname"><a href="ross-types_8h.html#a622b543188d8cf3c6c7d03d4a8f688a8">revent_f</a></div><div class="ttdeci">void(* revent_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00078">ross-types.h:78</a></div></div>
<div class="ttc" id="ross-random_8h_html_a39fc493bbf61e55264a6daa82e8109ab"><div class="ttname"><a href="ross-random_8h.html#a39fc493bbf61e55264a6daa82e8109ab">tw_rand_unif</a></div><div class="ttdeci">#define tw_rand_unif(G)</div><div class="ttdef"><b>Definition:</b> <a href="ross-random_8h_source.html#l00005">ross-random.h:5</a></div></div>
<div class="ttc" id="structphold__state_html"><div class="ttname"><a href="structphold__state.html">phold_state</a></div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00013">phold.h:13</a></div></div>
<div class="ttc" id="ross-types_8h_html_a00a92238994982e5b35fdb11bb058b61"><div class="ttname"><a href="ross-types_8h.html#a00a92238994982e5b35fdb11bb058b61">pre_run_f</a></div><div class="ttdeci">void(* pre_run_f)(void *sv, tw_lp *me)</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00076">ross-types.h:76</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a7d395f5590701f5526a161fcb1261b03"><div class="ttname"><a href="ross-extern_8h.html#a7d395f5590701f5526a161fcb1261b03">tw_init</a></div><div class="ttdeci">void tw_init(int *argc, char ***argv)</div><div class="ttdef"><b>Definition:</b> <a href="tw-setup_8c_source.html#l00033">tw-setup.c:33</a></div></div>
<div class="ttc" id="ross-random_8h_html_a9d938fae0821e40b672e49acecd80a3c"><div class="ttname"><a href="ross-random_8h.html#a9d938fae0821e40b672e49acecd80a3c">tw_rand_reverse_unif</a></div><div class="ttdeci">#define tw_rand_reverse_unif(G)</div><div class="ttdef"><b>Definition:</b> <a href="ross-random_8h_source.html#l00006">ross-random.h:6</a></div></div>
<div class="ttc" id="phold_8c_html_a022aa5520c1ece1e85616937f53f5395"><div class="ttname"><a href="phold_8c.html#a022aa5520c1ece1e85616937f53f5395">mylps</a></div><div class="ttdeci">tw_lptype mylps[]</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00112">phold.c:112</a></div></div>
<div class="ttc" id="structphold__message_html"><div class="ttname"><a href="structphold__message.html">phold_message</a></div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00018">phold.h:18</a></div></div>
<div class="ttc" id="phold_8h_html"><div class="ttname"><a href="phold_8h.html">phold.h</a></div></div>
<div class="ttc" id="ross_8h_html_a1ec2e3807f66c4270f47acb0e555a519"><div class="ttname"><a href="ross_8h.html#a1ec2e3807f66c4270f47acb0e555a519">tw_peid</a></div><div class="ttdeci">unsigned long tw_peid</div><div class="ttdef"><b>Definition:</b> <a href="ross_8h_source.html#l00147">ross.h:147</a></div></div>
<div class="ttc" id="tw-opts_8h_html_a0e45b7a88a51dca3fe99d31aae9636c4"><div class="ttname"><a href="tw-opts_8h.html#a0e45b7a88a51dca3fe99d31aae9636c4">TWOPT_GROUP</a></div><div class="ttdeci">#define TWOPT_GROUP(h)</div><div class="ttdef"><b>Definition:</b> <a href="tw-opts_8h_source.html#l00027">tw-opts.h:27</a></div></div>
<div class="ttc" id="ross-random_8c_html_ac042351acc76e850fd420dd41f0d58eb"><div class="ttname"><a href="ross-random_8c.html#ac042351acc76e850fd420dd41f0d58eb">tw_rand_exponential</a></div><div class="ttdeci">double tw_rand_exponential(tw_rng_stream *g, double Lambda)</div><div class="ttdef"><b>Definition:</b> <a href="ross-random_8c_source.html#l00069">ross-random.c:69</a></div></div>
<div class="ttc" id="ross-extern_8h_html_acd06dc2372c54c089852984132991b4e"><div class="ttname"><a href="ross-extern_8h.html#acd06dc2372c54c089852984132991b4e">tw_end</a></div><div class="ttdeci">void tw_end(void)</div><div class="ttdef"><b>Definition:</b> <a href="tw-setup_8c_source.html#l00420">tw-setup.c:420</a></div></div>
<div class="ttc" id="ross-extern_8h_html_ad057802273cd99b0e039da1ba15080ac"><div class="ttname"><a href="ross-extern_8h.html#ad057802273cd99b0e039da1ba15080ac">tw_event_send</a></div><div class="ttdeci">void tw_event_send(tw_event *event)</div><div class="ttdef"><b>Definition:</b> <a href="tw-event_8c_source.html#l00009">tw-event.c:9</a></div></div>
<div class="ttc" id="phold_8h_html_a636adef0ea6194a24b2e97cd664a9c90"><div class="ttname"><a href="phold_8h.html#a636adef0ea6194a24b2e97cd664a9c90">percent_remote</a></div><div class="ttdeci">static tw_stime percent_remote</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00030">phold.h:30</a></div></div>
<div class="ttc" id="structtw__lp_html_af7e48c8a55f5fff35746ac044df1902f"><div class="ttname"><a href="structtw__lp.html#af7e48c8a55f5fff35746ac044df1902f">tw_lp::rng</a></div><div class="ttdeci">tw_rng_stream * rng</div><div class="ttdoc">RNG stream array for this LP. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00317">ross-types.h:317</a></div></div>
<div class="ttc" id="st-instrumentation_8h_html_a4192455b462301b35dd36d1815e4a294"><div class="ttname"><a href="st-instrumentation_8h.html#a4192455b462301b35dd36d1815e4a294">model_stat_f</a></div><div class="ttdeci">void(* model_stat_f)(void *sv, tw_lp *lp, char *buffer)</div><div class="ttdef"><b>Definition:</b> <a href="st-instrumentation_8h_source.html#l00214">st-instrumentation.h:214</a></div></div>
<div class="ttc" id="phold_8h_html_a816584afd634f19479513f095756559b"><div class="ttname"><a href="phold_8h.html#a816584afd634f19479513f095756559b">run_id</a></div><div class="ttdeci">static char run_id[1024]</div><div class="ttdef"><b>Definition:</b> <a href="phold_8h_source.html#l00039">phold.h:39</a></div></div>
<div class="ttc" id="phold_8c_html_a8f7078bf279b431ad620a988850bb043"><div class="ttname"><a href="phold_8c.html#a8f7078bf279b431ad620a988850bb043">event_trace</a></div><div class="ttdeci">void event_trace(phold_message *m, tw_lp *lp, char *buffer, int *collect_flag)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00125">phold.c:125</a></div></div>
<div class="ttc" id="ross-types_8h_html_accdac06fd09ac539061af06d529fe467"><div class="ttname"><a href="ross-types_8h.html#accdac06fd09ac539061af06d529fe467">final_f</a></div><div class="ttdeci">void(* final_f)(void *sv, tw_lp *me)</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00080">ross-types.h:80</a></div></div>
<div class="ttc" id="phold_8c_html_ac09f86ccbbaef6a9a7241cd6606b8ac6"><div class="ttname"><a href="phold_8c.html#ac09f86ccbbaef6a9a7241cd6606b8ac6">model_types</a></div><div class="ttdeci">st_model_types model_types[]</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00142">phold.c:142</a></div></div>
<div class="ttc" id="ross-extern_8h_html_ae6211f101eb9694fec8f350c874ba6cd"><div class="ttname"><a href="ross-extern_8h.html#ae6211f101eb9694fec8f350c874ba6cd">g_tw_lookahead</a></div><div class="ttdeci">double g_tw_lookahead</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00049">ross-global.c:49</a></div></div>
<div class="ttc" id="ross-types_8h_html_abf9562d002530fb837843fd3f237dcd5"><div class="ttname"><a href="ross-types_8h.html#abf9562d002530fb837843fd3f237dcd5">commit_f</a></div><div class="ttdeci">void(* commit_f)(void *sv, tw_bf *cv, void *msg, tw_lp *me)</div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00079">ross-types.h:79</a></div></div>
<div class="ttc" id="ross-extern_8h_html_ae29dd6eba29314361ef334f6bf028210"><div class="ttname"><a href="ross-extern_8h.html#ae29dd6eba29314361ef334f6bf028210">tw_define_lps</a></div><div class="ttdeci">void tw_define_lps(tw_lpid nlp, size_t msg_sz)</div><div class="ttdef"><b>Definition:</b> <a href="tw-setup_8c_source.html#l00218">tw-setup.c:218</a></div></div>
<div class="ttc" id="ross-inline_8h_html_a6e55304c545600c2bb996fa70dd43f05"><div class="ttname"><a href="ross-inline_8h.html#a6e55304c545600c2bb996fa70dd43f05">tw_event_new</a></div><div class="ttdeci">static tw_event * tw_event_new(tw_lpid dest_gid, tw_stime offset_ts, tw_lp *sender)</div><div class="ttdef"><b>Definition:</b> <a href="ross-inline_8h_source.html#l00040">ross-inline.h:40</a></div></div>
<div class="ttc" id="ross-extern_8h_html_a57043bf25127f521210bbf779e283e13"><div class="ttname"><a href="ross-extern_8h.html#a57043bf25127f521210bbf779e283e13">g_tw_events_per_pe</a></div><div class="ttdeci">unsigned int g_tw_events_per_pe</div><div class="ttdef"><b>Definition:</b> <a href="ross-global_8c_source.html#l00076">ross-global.c:76</a></div></div>
<div class="ttc" id="structtw__lp_html"><div class="ttname"><a href="structtw__lp.html">tw_lp</a></div><div class="ttdoc">LP State Structure. </div><div class="ttdef"><b>Definition:</b> <a href="ross-types_8h_source.html#l00304">ross-types.h:304</a></div></div>
<div class="ttc" id="phold_8c_html_a3595f2db36743f9c8b02452339d3cf57"><div class="ttname"><a href="phold_8c.html#a3595f2db36743f9c8b02452339d3cf57">phold_finish</a></div><div class="ttdeci">void phold_finish(phold_state *s, tw_lp *lp)</div><div class="ttdef"><b>Definition:</b> <a href="phold_8c_source.html#l00106">phold.c:106</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>
